In digital cameras and imaging devices using only a single electronic sensor, the image color is captured by sub-sampling typically in three (Red, Green, Blue) color planes. In such cases, the original xe2x80x9craw imagexe2x80x9d is captured with each xe2x80x9craw image pixelxe2x80x9d composed of only one of three vital color/intensity components: either R, G, or B (Red, Green, or Blue). But for image rendering devices (such as a monitor or printer), full color resolution is desirable. Recovery of full color information from this sub-sampled color is popularly known as color interpolation.
The following description refers to raw image pixels as either xe2x80x9cpixelsxe2x80x9d or xe2x80x9craw image pixelsxe2x80x9d. Pixels that are formed by virtue of a completed color interpolation technique will be referred to as xe2x80x9cfull color pixelsxe2x80x9d. In digital still and video cameras and certain other imaging devices, raw images are first represented as rectangular row and column of pixels with each pixel having the intensity value of a particular color only. In the case of RGB (Red, Green and Blue) sub-sampling imaging devices, images are obtained and stored in a xe2x80x9cBayerxe2x80x9d pattern. The Bayer pattern, when three color planes are sub-sampled using a color filter array (CFA), is characterized by including on a first row of an image, alternating pixels of Red and Green, and then on a next row alternating pixels of Blue and Green. Thus, the Bayer pattern for the first four rows of pixels (with each pixel typically an 8-bit value) is as follows (with the rows thereafter repeating the same pattern):             G              R              G              R              G              R              …                  B              G              B              G              B              G              …                  G              R              G              R              G              R              …                  B              G              B              G              B              G              …                          xe2x80x83                            xe2x80x83                            xe2x80x83                    ⋮                      xe2x80x83                            xe2x80x83                            xe2x80x83            
As a result, each pixel location contains a value for a single color only. Assuming, as is the case in some imaging devices, that each pixel of the Bayer pattern has 8 bits of resolution (i.e., the pixel is a value representing the intensity of the color ranging from 0-255), then a xe2x80x9cfull colorxe2x80x9d pixel, one having R, G and B components would be a 24-bit value. To recover the two missing color components for each pixel, a color interpolation or color recovery is employed.
In color interpolation, an attempt is made to combine in some fashion neighboring pixel(s) to reconstruct, recover, or predict missing color component information for a given raw image pixel. Several prior art interpolation methods are described in xe2x80x9cInteractions Between Color Plane Interpolation and Other Image Processing Functions in Electronic Photographyxe2x80x9d, James E. Adams, Jr., SPIE, (The International Society for Optical Engineering), Vol. 2416 (Electronic Imaging ""95), pages 144-155 (July 1995), with most of these employing pixel averaging techniques to recover missing color components. At its simplest, a prior art averaging technique would interpolate the Red component of the captured Green pixel at row 2, column 2, (referring to the 8-bit Bayer pattern above) as the average of the two nearest red pixels, i.e., Red pixel at row 1, column 2 and the Red pixel at row 3, column 2. Likewise, the Blue component of the same captured Green at row 2, column 2 would be interpolated under an averaging technique as the average of the two nearest Blue pixels, i.e., the pixel at row 2, column 1 and the Blue pixel at row 2, column 3. The Blue and Red interpolated components are then combined with the original captured Green value of the pixel, row 2, column 2 to form a new pixel which is composite xe2x80x9cfullxe2x80x9d color pixel. The resultant xe2x80x9cRGBxe2x80x9d full color pixel is an approximation or prediction of the original object""s true color at that relative pixel location.
This averaging technique is crude in that the most visually critical information, such as edges, are decimated. If the pixel whose missing components are being interpolated lies on a edge boundary, then the averaging of pixels of corresponding color on each side of the boundary may cause that component to be a highly inaccurate version of the actual uncaptured color component. The edge, for that component would thus disappear. The response of the human visual system (eye, brain, etc.) to edge information is very acute, and thus, the blurriness of edge(s) will greatly detract from the perceived overall quality (sharpness, resolution, etc.) of an image. Further, other averaging techniques that attempt to detect patterns or edges are complex to implement in high-speed rendering applications. In these techniques, different formulas for averaging known as predictors are employed even within the same image depending on detected local patterns within the image. These techniques are not very efficient and further, if color components are interpolated when the pixels are being output, these techniques slow down the process of displaying or rendering pixels of an image into a display device. Averaging techniques produces images that are xe2x80x9csoftxe2x80x9d and not very crisp when viewed. Further xe2x80x9cluminancexe2x80x9d information contained in the Green pixels (which comprise 50% of the image according to the Bayer pattern) are a less significant factor than they should be when interpolation is carried out in the prior art techniques. The luminance information is greatest in Green pixels since Green is already a combination of two primary colors, Yellow and Blue. Thus, in terms of visual perception, Green contains more information about the original color of an area of pixels or pixel in the image than do Blue or Red pixels.
Thus, there is a need for an efficient color interpolation technique that more accurately reconstructs the original object color by taking into better account luminance information contained in Green pixels.
An interpolation method is disclosed for a raw image composed of pixels that utilizes color gravities of surrounding blocks of Green pixels in order to select neighboring pixels to attain missing color components for a raw image pixel. A new pixel is formed that has full color information which is a function of the raw image pixel and the interpolated color components.